package com.example.softpart.mqttFunction;

import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.json.JSONObject;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import org.ssssssss.magicapi.core.config.MagicFunction;
import org.ssssssss.script.annotation.Comment;
import org.ssssssss.script.annotation.Function;



@Component  //注入到Spring容器中
@AllArgsConstructor
public class MqttFunction implements MagicFunction {



    private MqttGateway mqttGateway;

    /**
     * 发送mqtt消息
     * @param topic 主题
     * @param message 内容
     * @return void
     */
    public void send(String topic, String message) {
        mqttGateway.sendToMqtt(topic, message);
    }

    /**
     * 发送包含qos的消息
     * @param topic 主题
     * @param qos 质量
     * @param messageBody 消息体
     * @return void
     */
    public void send(String topic, int qos, JSONObject messageBody){
        mqttGateway.sendToMqtt(topic, qos, messageBody.toString());
    }

    /**
     * 发送包含qos的消息
     * @param topic 主题
     * @param qos 质量
     * @param message 消息体
     * @return void
     */
    public void send(String topic, int qos, byte[] message){
        mqttGateway.sendToMqtt(topic, qos, message);
    }


    @Function
    @Comment("发送mqtt消息")
    public void sendMqttMessage(String topic, String qos, String messageBody) {
         mqttGateway.sendToMqtt(topic, Integer.parseInt(qos), messageBody);
    }

}
